Learn R Programming

Compositional (version 5.0)

The k-nearest neighbours using the alpha-distance: The k-nearest neighbours using the \(\alpha\)-distance

Description

The k-nearest neighbours using the \(\alpha\)-distance.

Usage

alfann(xnew, x, a, k = 10, rann = FALSE)

Arguments

xnew

A matrix or a vector with new compositional data.

x

A matrix with the compositional data.

a

The value of the power transformation, it has to be between -1 and 1. If zero values are present it has to be greater than 0. If \(\alpha=0\), the isometric log-ratio transformation is applied.

k

The number of nearest neighbours to search for.

rann

If you have large scale datasets and want a faster k-NN search, you can use kd-trees implemented in the R package "RANN". In this case you must set this argument equal to TRUE. Note however, that in this case, the only available distance is by default "euclidean".

Value

A matrix including the indices of the nearest neighbours of each xnew from x.

Details

The \(\alpha\)-transformation is applied to the compositional data first and the indices of the k-nearest neighbours using the Euclidean distance are returned.

References

Michail Tsagris, Abdulaziz Alenazi and Connie Stewart (2021). Non-parametric regression models for compositional data. https://arxiv.org/pdf/2002.05137.pdf

Tsagris M.T., Preston S. and Wood A.T.A. (2011). A data-based power transformation for compositional data. In Proceedings of the 4th Compositional Data Analysis Workshop, Girona, Spain. https://arxiv.org/pdf/1106.1451.pdf

See Also

alfa.knn, comp.nb, alfa.rda, alfa.nb, link{aknn.reg}, alfa, alfainv

Examples

Run this code
# NOT RUN {
library(MASS)
xnew <- as.matrix(fgl[1:20, 2:9])
xnew <- xnew / rowSums(xnew)
x <- as.matrix(fgl[-c(1:20), 2:9])
x <- x / rowSums(x)
b <- alfann(xnew, x, a = 0.1, k = 10)
# }

Run the code above in your browser using DataLab